<?php
session_start();
//---Requerimientos-----------------------------
require '../Forms/FrmComponentsList.php';
require '../Classes/Commandsreader.php';
require("../Classes/Setter.php");
//----------------------------------------------

$setter=new Setter("../Config");
$commandReader=new CommandsReader();

if(isset($_POST['component'])){
    //Solicitar a Interpreter la descripción del Componente elegido
    $client = new SoapClient(null,array('location' =>$setter->getInterpreter(),'uri' => 'urn:webservices'));
    // Llamar el metodo como si fuera del cliente
    $componentDescription=$client->getComponentDescription($_POST['component']);
    print_r($componentDescription);
    
    //Crear archivos js con comandos para trabajar con el componente solicitado.
    //Js Para presentar la ayuda del componente
    //Eliminar el archivo con la info antigua
    if(file_exists("../Data/component_help.js")){
        unlink("../Data/component_help.js");
    }
    //-----------------------------------------------
    $gestorH=fopen("../Data/component_help.js",'x+');
    $contentHelp='//component_help()'.chr(13).chr(10);
    $contentHelp.='function component_help(){'.chr(13).chr(10);
    $contentHelp.='document.getElementById("divContent").innerHTML=\''.$componentDescription.'\';'.chr(13).chr(10);
    $contentHelp.='}'.chr(13).chr(10);
    
    fwrite($gestorH,$contentHelp);
    fclose($gestorH);
    
    //Pedir lista de funciones
    $componentFunctions=$client->getComponentFunctions($_POST['component']);
    //Crear js por cada function
    foreach ($componentFunctions as $function){
        $aux=explode(":",$function);
	//Crear archivo con la info nueva----------------
        //Obtener nombre
        $aux2=explode("(", $aux[1]);
        
        //Obtener nombre de la funcion
        $aux3=explode(" ", $aux2[0]); 
        $fun=$aux3[1];
        //----------------------------
        //Obtener el número de parametros
        $aux4=explode(",",$aux2[1]);
        if(count($aux4)>1&&$aux4[0]!=""){
            $nParm=count($aux4);
        }
        else{
            $nParm=0;
        }
        
        //-------------------------------
        
        //Eliminar el archivo con la info antigua
        if(file_exists("../Data/".$fun.".js")){
            unlink("../Data/".$fun.".js");
        }
        //-----------------------------------------------
	$gestor=fopen("../Data/".$fun.".js",'x+');
	$content='//'.$fun.'()'.chr(13).chr(10);
        $content.='function '.$fun.'(){'.chr(13).chr(10);
        $content.='parametros="";'.chr(13).chr(10);
        //Tomar parametros de stack
        $content.='for(i=stack.length-1;i>(stack.length-1)-'.$nParm.';i--){'.chr(13).chr(10).'
                        parametros+=stack[i]+",";'.chr(13).chr(10).'
            }'.chr(13).chr(10);
        
        $content.='document.getElementById("commandToServer").value="'.$_POST['component'].'->'.$fun.'<-"+parametros;'.chr(13).chr(10).
                  'document.getElementById("tray").value="0:";'.chr(13).chr(10).
                  'POSTMethodSend("commandToServer","divContent","../Events/EventsCommandsComponent.php");'.chr(13).chr(10);
        $content.='}';
	
	fwrite($gestor,$content);
	fclose($gestor);
	//-----------------------------------------------
        $commandReader->buildUpdateStack();
    
    }
    
    
    
}
?>
